Free Pascal supports the use of assembler in your code, but not inline assembler. assembly functions (i.e. functions declared with the Assembler keyword) are supported as of version 0.9.7.
Remark : Free Pascal issues AT&T assembly language, as understood by most unix assemblers (most notably : GNU as). Intel assembler syntax is available as of version 0.9.8 but the Intel support isn't complete in the sense that it is converted to AT&T syntax, and some constructions aren't supported by the conversion mechanism (see Programmer's guide for more information about this). Therefore all examples of assembly language will be given in AT&T syntax, as it is the 'native' assembly from Free Pascal.
The following is an example of assembler inclusion in your code.
... Statements; ... Asm Movl 0,%eax ... end; ... Statements;The assembler instructions between the Asm and end keywords will be inserted in the assembler generated by the compiler.
You can still use comditionals in your assembler, the compiler will recognise it, and treat it as any other conditionals.
Contrary to Turbo Pascal, it isn't possible (yet) to reference variables by their names in the assembler parts of your code.